Beschreibung |
---|
Export in Slicing-Software für 3D-Drucker. Exportiert die STL-Datei in das gleiche Verzeichnis wie die ursprüngliche Designdatei und öffnet sie dann in Slicing-Software. Beim Ausführen wird dieser Code das aktuelle Design in eine STL-Datei und sie in der verwendeten Slicing-Software öffnen. Dieses Beispiel ist für KISSlicer, kann aber für Slic3r, Cura, oder jede andere 3D-Drucker-Software angepasst werden. Er kann auch geringfügig angepasst werden, um CAM-Software für CNC-Maschinen zu öffnen. Versionsmakro : 1.0 Datum der letzten Änderung : 2013-10-10 FreeCAD version : Alle Herunterladen : ToolBar Icon Autor: cae2100 |
Autor |
cae2100 |
Herunterladen |
ToolBar Icon |
Links |
Makros Rezepte Wie installiere ich Makros So passen Sie Symbolleisten an |
Macro-Version |
1.0 |
Datum der letzten Änderung |
2013-10-10 |
FreeCAD-Version(s) |
Alle |
Standardverknüpfung |
None |
Siehe auch |
Macro 3D-Drucker-Slicer Individuelle Teile |
Wenn dieser Code ausgeführt wird, wird der derzeit geöffnete Entwurf in eine STL-Datei exportiert und in der von Ihnen verwendeten Slicing-Software geöffnet. Dieses Beispiel ist für KISSlicer, kann aber zur Verwendung geändert werden Slic3r, Cura, oder eine andere 3D-Druckersoftware. Sie kann auch leicht modifiziert werden, um die CAM-Software für CNC-Maschinen zu öffnen.
Es wird am besten durch Erstellen eines Links zu dem Makro in der Symbolleiste verwendet. Wenn Sie zum Schneiden des Objekts bereit sind, klicken Sie einfach darauf. Das Objekt wird in FreeCAD auf dem Bildschirm angezeigt und erscheint auf der Benutzeroberfläche der Slicing-Software . Außerdem wird eine STL-Datei mit demselben Dateinamen wie die Designdatei in demselben Verzeichnis wie die Designdatei als Sicherung erstellt.
Die SLICER-Variable kann in eine beliebige Slicing-Software Ihrer Wahl geändert werden. Vergewissern Sie sich, dass Sie die Variable gesetzt haben, bevor Sie sie ausführen, oder es wird ein Fehler im Skript angezeigt.
Macro_3d_Printer_Slicer.py
import FreeCAD import Mesh import sys import math import os import subprocess # some fuctions def getPlacement(quat,vect,obj): if quat[3] > -1 and quat[3] < 1: delta = math.acos(quat[3])*2.0 scale = math.sin(delta/2) rx = quat[0]/scale ry = quat[1]/scale rz = quat[2]/scale else: delta = 0 rx = 0 ry = 0 rz = 1 info0 = "translation "+str(vect.x)+" "+str(vect.y)+" "+str(vect.z) info1 = "rotation "+str(rx)+" "+str(ry)+" "+str(rz)+" "+str(delta) return info0+" "+info1 # some definitions placement = App.Placement(App.Vector(0,0,0),App.Rotation(0,0,0,1)) # user need to set this directory where slicing software is located OutDir = FreeCAD.ActiveDocument.FileName.replace(FreeCAD.ActiveDocument.Label + ".fcstd", "") visible_objs = [] SLICER = "/kisslicer location/" # Put your Slicer program location here os.chdir(SLICER) # Get Objects in document doc = App.ActiveDocument objs = doc.Objects # hide all for obj in objs: if obj.ViewObject.isVisible(): visible_objs.append(obj) for obj in visible_objs: # get volume volume = obj.Shape.Volume # get Rotation and translation of volume quat = obj.Placement.Rotation.Q vect = obj.Placement.Base pinfo = getPlacement(quat,vect,obj) # reset placement, export it and set at original placement oldPlacement = obj.Placement obj.Placement = placement obj.Placement = oldPlacement stlFile = OutDir+str(doc.Label)+".stl" Mesh.export(visible_objs,stlFile) subprocess.Popen([SLICER + "KISSlicer", stlFile])
Dank an Wmayer für seine Hilfe beim Schreiben dieses Skripts.
Ursprüngliches Forumsthema: http://forum.freecadweb.org/viewtopic.php?f=10&t=4686